/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "Wed_clock.h"

/*******************************************************************************
 * Static
 ******************************************************************************/
static uint32_t __g_Wed_tick = 0;

/*******************************************************************************
 * Code
 ******************************************************************************/
/**
 * \brief 获取系统 tick
 */
uint32_t Wed_tick_get(void){
    return __g_Wed_tick;
}

/**
 * \brief 系统 tick 递增
 */
void Wed_tick_increase(void){
#if WED_KERNEL_FREERTOS
    __g_Wed_tick++;
#else

#endif
}

/**
 * \brief 毫秒延时函数
 *
 * @param ms 要延时的毫秒数
 */
void Wed_mdelay(uint32_t ms){
    uint32_t start = Wed_tick_get();
    uint32_t end   = start + ms * WED_TICK_PER_MILLISECOND;

    /* 溢出了 */
    if (end < start) {
        while (Wed_tick_get() != 0xFFFFFFFF) {
            if (Wed_tick_get() < start) {
                break;
            }
        }
    }

    while (Wed_tick_get() < end);
}

